class MathAndBitwise:
    @staticmethod
    def is_prime(num):
        """
        判断素数算法

        参数:
        num (int): 输入的整数

        返回:
        bool: 输入的整数是否为素数

        实现步骤:
        1. 对于输入的整数小于2的情况，返回False
        2. 遍历2到sqrt(num)的范围，判断是否有因子能整除num
        3. 若存在因子能整除num，则num不是素数，返回False；否则，num是素数，返回True

        """

        # 步骤 1: 对于输入的整数小于2的情况，返回False
        if num < 2:
            return False

        # 步骤 2: 遍历2到sqrt(num)的范围，判断是否有因子能整除num
        for i in range(2, int(num ** 0.5) + 1):
            if num % i == 0:
                # 若存在因子能整除num，则num不是素数，返回False
                return False

        # 步骤 3: 若没有因子能整除num，则num是素数，返回True
        return True

    @staticmethod
    def reverse_number(num):
        """
        数字反转算法

        参数:
        num (int): 输入的整数

        返回:
        int: 反转后的整数

        实现步骤:
        1. 将输入的整数转为字符串形式
        2. 对字符串进行反转操作
        3. 将反转后的字符串转回整数形式，并考虑符号位
        4. 返回反转后的整数

        """

        # 步骤 1: 将输入的整数转为字符串形式
        num_str = str(num)

        # 步骤 2: 对字符串进行反转操作
        reversed_str = num_str[::-1]

        # 步骤 3: 将反转后的字符串转回整数形式，并考虑符号位
        if num < 0:
            reversed_str = "-" + reversed_str[:-1]
        reversed_num = int(reversed_str)

        # 步骤 4: 返回反转后的整数
        return reversed_num

    @staticmethod
    def bitwise_operation(num1, num2):
        """
        位运算算法

        参数:
        num1 (int): 第一个整数
        num2 (int): 第二个整数

        返回:
        int: 位运算结果

        实现步骤:
        1. 使用位运算符进行指定的位运算操作
        2. 返回运算结果

        """

        # 步骤 1: 使用位运算符进行指定的位运算操作
        result = num1 & num2  # 与运算

        # 步骤 2: 返回运算结果
        return result


if __name__ == '__main__':
    # 示例调用判断素数算法
    num = 17
    is_prime_result = MathAndBitwise.is_prime(num)
    print("判断素数算法结果:", is_prime_result)
    # 输出: 判断素数算法结果: True

    # 示例调用数字反转算法
    num = -12345
    reversed_num = MathAndBitwise.reverse_number(num)
    print("数字反转算法结果:", reversed_num)
    # 输出: 数字反转算法结果: 54321

    # 示例调用位运算算法
    num1 = 5
    num2 = 3
    bitwise_result = MathAndBitwise.bitwise_operation(num1, num2)
    print("位运算算法结果:", bitwise_result)
    # 输出: 位运算算法结果: 1
